/**
 * 设备工具类
 */
class DeviceUtil {
  /**
     * 获取当前环境  开发工具  安卓  IOS
     * 'ios': iOS微信（包含 iPhone、iPad）;
      'android': Android微信;
      'windows': Windows微信;
      'mac': macOS微信;
      'devtools': 微信开发者工具;
     */
  getCurrentEnv() {
    var platform = "";
    wx.getSystemInfo({
      success(res) {
        platform = res.platform;
      },
    });
    console.log(platform);
    return platform;
  }

  /**
   * 获取设备的屏幕高度
   */
  getDeviceHeight() {
    var screenHeight = "";
    wx.getSystemInfo({
      success: (res) => {
        screenHeight = res.windowHeight;
      },
    });
    return screenHeight;
  }

  /**
   * 监听点击输入框页面弹起事件
   * 使用说明：
   * 该方法对IOS上的 <vant-field type="textarea" /> 会有显示不全的问题 不建议在textarea上使用
   *
   * @param {当前页面指向} that
   * @param {点击事件参数} e
   */
  keyboard(that, e) {
    // 获取屏幕高度
    var height = this.getDeviceHeight();
    // 仅在手机上使用此函数
    if (this.getCurrentEnv() == "android" || this.getCurrentEnv() == "ios") {
      that.setData({
        keyboard: 0,
      });
      // 创建一个选择器查询对象
      const query = wx.createSelectorQuery();
      // 选择要获取的元素
      query
        .select("#" + e.currentTarget.dataset.id)
        .boundingClientRect(function (rect) {
          // 获取元素的位置和尺寸等信息
          var top =
            -(rect.bottom - height / 2) < 0 ? -(rect.bottom - height / 2) : 0;
          that.setData({
            keyboard: top,
          });
        })
        .exec();
    }
  }

  /**
   * 关闭键盘
   * @param {*} that
   */
  closeKeyboard(that) {
    if (this.getCurrentEnv() == "android" || this.getCurrentEnv() == "ios") {
      that.setData({
        keyboard: 0,
      });
    }
  }
}

const deviceUtil = new DeviceUtil();
export default deviceUtil;
